#ifndef TEXT_VIDEO_H
#define TEXT_VIDEO_H

#define TEXT_VIDEO_RAM_START    0xb8000
#define TEXT_VIDEO_RAM_SIZE     ((25*80)*2)

#define ACTION_DIR_UP       0x10
#define ACTION_DIR_DOWN     0x11
#define ACTION_DIR_LEFT     0x12
#define ACTION_DIR_RIGHT    0x13
#define ACTION_BLINK_OFF    0x14
#define ACTION_BLINK_ON     0x15

bool ui_monitor;

void setup_text_video(void);
void cls(void);
void print_string(const char * const str);
void printf(const char * const str, ...);

void start_ui_more_monitor(const char * msg);

void set_cursor_to_info_bar(void);
void restore_cursor_from_info_bar(void);

#define info_bar_printf(...){   if(1)\
                                { \
                                    set_cursor_to_info_bar(); \
                                    clear_memory((uint8_t*)(TEXT_VIDEO_RAM_START + ((80*24)*2)), 160); \
                                    printf(__VA_ARGS__); \
                                    restore_cursor_from_info_bar(); \
                                } \
                            } 
                            
#endif

